load("@fbcode_macros//build_defs:rust_library.bzl", "rust_library")
load("@fbsource//tools/build_defs:glob_defs.bzl", "glob")

oncall("buck2")

rust_library(
    name = "buck2_server",
    srcs = glob(["src/**/*.rs"]),
    os_deps = [
        (
            "linux",
            [
                "fbsource//third-party/rust:psutil",
            ],
        ),
        (
            "macos",
            [
                "fbsource//third-party/rust:psutil",
            ],
        ),
    ],
    test_deps = [
        "fbsource//third-party/rust:assert_matches",
        "fbsource//third-party/rust:maplit",
        "fbsource//third-party/rust:tempfile",
        "//buck2/app/buck2_util:buck2_util",
    ],
    deps = [
        "fbsource//third-party/rust:anyhow",
        "fbsource//third-party/rust:async-recursion",
        "fbsource//third-party/rust:async-trait",
        "fbsource//third-party/rust:bincode",
        "fbsource//third-party/rust:chrono",
        "fbsource//third-party/rust:constant_time_eq",
        "fbsource//third-party/rust:crossbeam-channel",
        "fbsource//third-party/rust:debugserver-types",
        "fbsource//third-party/rust:derive_more",
        "fbsource//third-party/rust:flate2",
        "fbsource//third-party/rust:futures",
        "fbsource//third-party/rust:inferno",
        "fbsource//third-party/rust:itertools",
        "fbsource//third-party/rust:lsp-server",
        "fbsource//third-party/rust:lsp-types",
        "fbsource//third-party/rust:maplit",
        "fbsource//third-party/rust:notify",
        "fbsource//third-party/rust:num_cpus",
        "fbsource//third-party/rust:once_cell",
        "fbsource//third-party/rust:pin-project",
        "fbsource//third-party/rust:prost",
        "fbsource//third-party/rust:prost-types",
        "fbsource//third-party/rust:rand",
        "fbsource//third-party/rust:serde",
        "fbsource//third-party/rust:serde_json",
        "fbsource//third-party/rust:shlex",
        "fbsource//third-party/rust:sync_wrapper",
        "fbsource//third-party/rust:tar",
        "fbsource//third-party/rust:thiserror",
        "fbsource//third-party/rust:tokio",
        "fbsource//third-party/rust:tokio-stream",
        "fbsource//third-party/rust:tonic",
        "fbsource//third-party/rust:tracing",
        # @oss-disable: "//blake3:blake3-constants-rust", 
        "//buck2/allocative/allocative:allocative",
        "//buck2/app/buck2_build_api:buck2_build_api",
        "//buck2/app/buck2_cli_proto:buck2_cli_proto",
        "//buck2/app/buck2_common:buck2_common",
        "//buck2/app/buck2_core:buck2_core",
        "//buck2/app/buck2_data:buck2_data",
        "//buck2/app/buck2_event_observer:buck2_event_observer",
        "//buck2/app/buck2_events:buck2_events",
        "//buck2/app/buck2_execute:buck2_execute",
        "//buck2/app/buck2_execute_impl:buck2_execute_impl",
        "//buck2/app/buck2_forkserver:buck2_forkserver",
        "//buck2/app/buck2_interpreter:buck2_interpreter",
        "//buck2/app/buck2_interpreter_for_build:buck2_interpreter_for_build",
        "//buck2/app/buck2_profile:buck2_profile",
        "//buck2/app/buck2_re_configuration:buck2_re_configuration",
        "//buck2/app/buck2_server_ctx:buck2_server_ctx",
        "//buck2/app/buck2_subscription_proto:buck2_subscription_proto",
        "//buck2/app/buck2_util:buck2_util",
        "//buck2/app/buck2_wrapper_common:buck2_wrapper_common",
        "//buck2/dice/dice:dice",
        "//buck2/gazebo/dupe:dupe",
        "//buck2/gazebo/gazebo:gazebo",
        "//buck2/host_sharing:host_sharing",
        "//buck2/remote_execution:remote_execution",
        "//buck2/shed/more_futures:more_futures",
        "//buck2/starlark-rust/starlark:starlark",
        "//buck2/starlark-rust/starlark_map:starlark_map",
        # @oss-disable: "//common/rust/shed/detect_eden:detect_eden", 
        "//common/rust/shed/fbinit:fbinit",
        # @oss-disable: "//eden/scm/lib/fsinfo:fsinfo", 
        "//watchman/rust/watchman_client:watchman_client",
    ],
)
